package com.yc.cloud.admin.service;

import com.yc.cloud.admin.dto.response.SnapshotResultVO;

import java.util.List;
import java.util.Map;

/**
 * 摄像头抓图执行器接口
 * 
 * @author kinggu
 * @since 2025-10-10
 */
public interface CameraSnapshotExecutor {
    
    /**
     * 执行单个摄像头抓图
     *
     * @param cameraId 摄像头ID
     * @param triggerSource 触发源
     * @return 抓图结果
     */
    SnapshotResultVO executeSnapshot(Long cameraId, String triggerSource);
    
    /**
     * 批量执行抓图（定时任务调用）
     *
     * @param cameraIds 摄像头ID列表
     * @return 摄像头ID -> 抓图结果的映射
     */
    Map<Long, SnapshotResultVO> executeBatchSnapshot(List<Long> cameraIds);
    
    /**
     * 手动触发抓图
     *
     * @param cameraId 摄像头ID
     * @param operator 操作者
     * @return 抓图结果
     */
    SnapshotResultVO manualSnapshot(Long cameraId, String operator);
    
    /**
     * 事件触发抓图（告警时调用）
     *
     * @param cameraId 摄像头ID
     * @param alarmId 告警ID
     * @return 抓图结果
     */
    SnapshotResultVO eventSnapshot(Long cameraId, Long alarmId);
}

